package de.uni.muenster.idw2.location.bluetooth.service.fingerprinting.core;

/**
 * This class represents the image transformation parameters form WGS84 to pixel coordinates.
 * 
 * TODO delete pixel coordinates
 * 
 * @author guest-ez
 *
 */
public class ImageTransformation 
{
	/**
	 * The WGS84 latitude of the top left corner in the image.
	 */
	private double topLeftCornerLatitude = 0;
	
	/**
	 * The WGS84 longitude of the top left corner in the image.
	 */
	private double topLeftCornerLongitude = 0;
	
	/**
	 * The WGS84 latitude of the bottom right corner in the image.
	 */
	private double bottomRightCornerLatitude = 0;
	
	/**
	 * The WGS84 longitude of the bottom right corner in the image.
	 */
	private double bottomRightCornerLongitude = 0;
	
	/**
	 * The pixel X coordinate of the top left corner in the image.
	 */
	private double topLeftCornerX = 0;
	
	/**
	 * The pixel Y coordinate of the top left corner in the image.
	 */
	private double topLeftCornerY = 0;
	
	/**
	 * The pixel X coordinate of the bottom right corner in the image.
	 */
	private double bottomRightCornerX = 0;
	
	/**
	 * The pixel Y coordinate of the bottom right corner in the image.
	 */
	private double bottomRightCornerY = 0;
	
	/**
	 * Sets the WGS84 control points.
	 * 
	 * @param topLeftCornerLatitude The WGS84 latitude of the top left corner in the image.
	 * @param topLeftCornerLongitude The WGS84 longitude of the top left corner in the image.
	 * @param bottomRightCornerLatitude The WGS84 latitude of the bottom right corner in the image.
	 * @param bottomRightCornerLongitude The WGS84 longitude of the bottom right corner in the image.
	 */
	public void setWGS84ControlPoints(double topLeftCornerLatitude, double topLeftCornerLongitude,
									  double bottomRightCornerLatitude, double bottomRightCornerLongitude)
	{
		this.topLeftCornerLatitude = topLeftCornerLatitude;
		this.topLeftCornerLongitude = topLeftCornerLongitude;
		this.bottomRightCornerLatitude = bottomRightCornerLatitude;
		this.bottomRightCornerLongitude = bottomRightCornerLongitude;
	}
	
	/**
	 * Sets the pixel control points.
	 * 
	 * @param topLeftCornerLatitude The pixel X coordinate of the top left corner in the image.
	 * @param topLeftCornerLongitude The pixel Y coordinate of the top left corner in the image.
	 * @param bottomRightCornerLatitude The pixel X coordinate of the bottom right corner in the image.
	 * @param bottomRightCornerLongitude The pixel Y coordinate of the bottom right corner in the image.
	 */
	public void setPixelControlPoints(double topLeftCornerX, double topLeftCornerY,
									  double bottomRightCornerX, double bottomRightCornerY)
	{
		this.topLeftCornerX = topLeftCornerX;
		this.topLeftCornerY = topLeftCornerY;
		this.bottomRightCornerX = bottomRightCornerX;
		this.bottomRightCornerY = bottomRightCornerY;
	}

	public double getTopLeftCornerLatitude() {
		return topLeftCornerLatitude;
	}

	public double getTopLeftCornerLongitude() {
		return topLeftCornerLongitude;
	}

	public double getBottomRightCornerLatitude() {
		return bottomRightCornerLatitude;
	}

	public double getBottomRightCornerLongitude() {
		return bottomRightCornerLongitude;
	}

	public double getTopLeftCornerX() {
		return topLeftCornerX;
	}

	public double getTopLeftCornerY() {
		return topLeftCornerY;
	}

	public double getBottomRightCornerX() {
		return bottomRightCornerX;
	}

	public double getBottomRightCornerY() {
		return bottomRightCornerY;
	}
}
